The present disclosure relates to the information technology field. More specifically, this disclosure relates to the management of virtual appliances.
Virtual appliances (VA) are a specific type of software appliances. In general, a software appliance is a software solution for performing a specific user task; for this purpose, the software appliance comprises a set of software programs implementing the user task, which are encapsulated in a pre-built, self-contained deployment package. Particularly, a virtual appliance is a software appliance designed to run in a virtualized environment; more specifically, the virtual appliance comprises one or more virtual (computing) machines (VM)—i.e., emulations by software of physical computing machines; each virtual machine runs one or more application programs (actually implementing the user task) and an operating system supporting them—for example, a Just Enough Operating System (JeOS), consisting of a limited operating system specifically tailored for the corresponding application programs. The virtual appliances provide a simplified management (i.e., development, deployment and maintenance). This is particularly advantageous in cloud computing environments providing access to computing resources on-demand as services (i.e., self-contained basic tasks that may be invoked through a well-defined interface); indeed, in this case the virtual appliances allow provisioning the corresponding services in a very simple and fast way.
Each virtual appliance may also support multiple profiles (in jargon, personalities). Each profile is defined by a corresponding set of all the software programs (i.e., operating system and application programs) that are available in the virtual appliance; when a specific profile is activated, only the corresponding software programs are enabled (while the other software programs are kept disabled). In this way, it is possible to manage a reduce number of virtual appliances, which may be used in different ways according to contingent needs; for example, a virtual appliance implementing a web service may support a profile with a proprietary web server and another profile with an open source web server.
The virtual appliances are becoming more and more complex; for example, the above-mentioned virtual appliance implementing a web service may have a web tier (providing its user interface), an application tier (providing its processing logic) and a back-end tier (providing its data storing), with each tier comprising multiple virtual machines. However, this complexity is challenging for the management of specific constraints that may be applicable to the software programs—for example, their compliance with license entitlements. This is exacerbated in cloud computing environments, wherein a high number of heterogeneous virtual appliances are continually deployed and deleted; moreover, further difficulties are caused by the large variety of license conditions that are offered by different vendors of the software programs.
Some techniques have been proposed in the art for coping with this problem.
For example, EP-A-2084605 (the entire disclosure of which is herein incorporated by reference) discloses a technique wherein compliance of a virtual machine with a compliance scheme is determined prior to its execution; if the virtual machine is not compliant, it is adapted into compliance pre-execution, and adaptations made to the virtual machine are analyzed to derive an optimized variant of the virtual machine based on the analysis. For example, non-compliances that may be fixed comprise missing security software, bug-fixes and hot-fixes, configuration and licensing issues (such as removal/flagging of unauthorized software).
Moreover, US-A-2009/0249329 (the entire disclosure of which is herein incorporated by reference) discloses a technique wherein a deployment scheme of a new virtual appliance to be deployed on a data processing center is determined by optimizing a cost function based on license condition information applicable to the data processing center, configuration information of the data processing center and structure information of the new virtual appliance.
However, the techniques known in the art only operate at the level of the virtual machines; in other words, they work in an on-off way, permitting or prohibiting the use of each virtual machine according to its whole compliance (with at most the possibility of removing/flagging unauthorized software).